Marca de orden de bytes

En Unicode, la marca de orden de bytes o BOM(11s) (del inglés byte order mark) es un dato que indica el uso de una codificación Unicode, así como el orden de los bytes. Generalmente se encuentra al principio de algunos archivos de texto.[1]

Técnicamente,[2]​ es un carácter Unicode cuyo punto de código es U+FEFF (espacio sin salto de línea de ancho cero o zero-width no-break space en inglés), el cual se utiliza para marcar cuál es la posición de mayor o menor valor (endianness)[3]​ de una cadena del Conjunto de Caracteres Universal ISO/IEC 10646 (en inglés Universal Character Set o UCS) o Unicode ya sea en UTF-16 o UTF-32 y/o como un marcador para indicar que el texto está codificado en UTF-8, UTF-16 o UTF-32. El término oficial para este carácter en la versión francesa de ISO/IEC 10646 (que es la contraparte de Unicode ISO) es marca de orden de bytes (BOM).

Cuando se interpreta correctamente, el usuario final del texto codificado no ve el BOM. Sin embargo, hay dos casos donde este carácter puede ser mal interpretado:

  • En el caso de que se considere una versión antigua de Unicode, este carácter es invisible y que no se muestra al usuario.
  • En el caso de un texto Unicode UTF-8 mostrado con una codificación incorrecta (es decir, la codificación utilizada no es la que debe usarse), el usuario hallará al comienzo de la página o texto una breve secuencia de caracteres incomprensibles sin significado (en particular con la codificación ISO/IEC 8859-1). En este caso los siguientes tres caracteres aparecen al principio del texto:

Debido a que la codificación utilizada no es la especificada, algunos caracteres regionales o acentuados no se muestran correctamente en el resto del texto.

La marca de orden de bytes de la mayoría de las codificaciones Unicode es una secuencia de pocos bytes que puede aparecer como una secuencia inusual de caracteres si el software que se usa para leer el texto está mal configurado o como un espacio si el software que se usa para leer el texto no reconoce este indicador.[4]

Si una marca de orden de bytes se interpreta erróneamente como un carácter dentro del texto, será invisible porque es un espacio sin interrupción de ancho cero (es decir, un zero-width no-break space). El uso del carácter U+FEFF como un espacio sin interrupción de ancho cero, (es decir, como un espacio duro) se ha vuelto obsoleto en la versión Unicode 3.2, la cual proporciona el carácter U+2060 como alternativa para este uso específico.[5]​ Por lo tanto, este carácter debe usarse solo como una marca de orden de bytes.

  1. (en inglés) Q: What is a BOM?
  2. (en inglés) Q: Where is a BOM useful?
  3. (en inglés) Q: What does ‘endian’ mean?
  4. (en inglés) Q: What should I do with U+FEFF in the middle of a file?
  5. (en inglés) Q: I am using a protocol that has BOM at the start of text. How do I represent an initial ZWNBSP?

From Wikipedia, the free encyclopedia · View on Wikipedia

Developed by Nelliwinne